package com.tyk.bookstore.back.storage.service;


import com.tyk.bookstore.back.storage.manager.excel.model.StockExcelVo;
import com.tyk.bookstore.back.storage.model.query.StockAddQuery;
import com.tyk.bookstore.back.storage.model.query.StockDeleteQuery;
import com.tyk.bookstore.back.storage.model.query.StockPageQuery;
import com.tyk.bookstore.back.storage.model.query.StockUpdateQuery;
import com.tyk.bookstore.back.storage.model.vo.StockPageVo;
import com.tyk.bookstore.back.storage.model.vo.StockVo;

import java.util.List;

/**
 * @author tyk
 * @description 仓库管理
 */
public interface StockService {

    /**
     * 获取库存详情
     */
    StockVo get(Long warehouseId, Long bookId);

    /**
     * 分页查询库存
     */
    StockPageVo getPage(StockPageQuery query);

    /**
     * 添加库存
     */
    void add(StockAddQuery query);

    /**
     * 更新库存
     */
    void update(StockUpdateQuery query);

    /**
     * 、
     * 删除库存
     */
    void delete(StockDeleteQuery query);

    /**
     * 批量删除库存
     */
    void deleteBatch(List<StockDeleteQuery> queryList);

    /**
     * 删除数量为0的库存
     */
    void deleteZero();

    /**
     * 获取Excel导出数据
     *
     * @param query 同分页查询参数
     * @return Excel导出数据
     */
    List<StockExcelVo> getStockExcelVoList(StockPageQuery query);

    /**
     * 保存库存Excel
     *
     * @param stockList 库存列表
     */
    void saveStockExcelVoList(List<StockExcelVo> stockList);
}
